﻿using System;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
using YaAppoint.Response;

namespace YaAppoint.Devices
{
    [RemoteService(isEnabled: false)]
    public interface IDeviceAppService:IApplicationService
    {
        /// <summary>
        ///  加载tree数据
        /// </summary>
        Task<BackJson> GetTreeData(Guid? depId);

        /// <summary>
        /// 获取科室设备类型
        /// </summary>
        Task<BackJson> GetDeviceTypeOptions(Guid depId);

        /// <summary>
        /// 获取诊室下设备
        /// </summary>
        Task<BackJson> GetRoomDevicesAsync(Guid roomId);

        /// <summary>
        /// 获取设备详情
        /// </summary>
        Task<BackJson> GetDetailAsync(Guid id);

        /// <summary>
        /// 提交创建
        /// </summary>
        Task<BackJson> SubmitCreate(DeviceDto dto, Guid roomId);

        /// <summary>
        /// 提交编辑
        /// </summary>
        Task<BackJson> SubmitEdit(DeviceDto dto, Guid roomId);

        /// <summary>
        /// 获取状态选项
        /// </summary>
        BackJson LoadStatusOptions();

        /// <summary>
        /// 删除设备
        /// </summary>
        Task<BackJson> DeleteAsync(Guid id);

        /// <summary>
        /// 获取设备可用排班计划选项
        /// </summary>
        /// <param name="deviceId">设备ID</param>
        /// <returns></returns>
        Task<BackJson> GetScheduleOptions(Guid deviceId);
    }
}
